扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
struct C041 { C041() : c_(0x01) {} virtual void foo() { c_ = 0x02; } char c_; }; |
C041 obj; PRINT_DETAIL(C041, obj) PRINT_VTABLE_ITEM(obj, 0, 0) obj.foo(); C041 * pt = &obj; pt->foo(); |
The detail of C041 is 14 b3 45 00 01 obj : objadr:0012F824 vpadr:0012F824 vtadr:0045B314 vtival(0):0041DF1E |
004230DF lea ecx,[ebp+FFFFF948h] 004230E5 call 0041DF1E |
01 004263F0 push ebp 02 004263F1 mov ebp,esp 03 004263F3 sub esp,0CCh 04 004263F9 push ebx 05 004263FA push esi 06 004263FB push edi 07 004263FC push ecx 08 004263FD lea edi,[ebp+FFFFFF34h] 09 00426403 mov ecx,33h 10 00426408 mov eax,0CCCCCCCCh 11 0042640D rep stos dword ptr [edi] 12 0042640F pop ecx 13 00426410 mov dword ptr [ebp-8],ecx 14 00426413 mov eax,dword ptr [ebp-8] 15 00426416 mov byte ptr [eax+4],2 16 0042641A pop edi 17 0042641B pop esi 18 0042641C pop ebx 19 0042641D mov esp,ebp 20 0042641F pop ebp 21 00426420 ret |
01 004230F6 mov eax,dword ptr [ebp+FFFFF900h] 02 004230FC mov edx,dword ptr [eax] 03 004230FE mov esi,esp 04 00423100 mov ecx,dword ptr [ebp+FFFFF900h] 05 00423106 call dword ptr [edx] |
C051 obj; C041 * pt1 = dynamic_cast<C041*>(&obj); C042 * pt2 = dynamic_cast<C042*>(&obj); pt1->foo(); pt2->foo2(); |
00404B59 lea eax,[ebp+FFFFF8ECh] 00404B5F mov dword ptr [ebp+FFFFF8E0h],eax |
01 00404B65 lea eax,[ebp+FFFFF8ECh] 02 00404B6B test eax,eax 03 00404B6D je 00404B7D 04 00404B6F lea ecx,[ebp+FFFFF8F1h] 05 00404B75 mov dword ptr [ebp+FFFFF04Ch],ecx 06 00404B7B jmp 00404B87 07 00404B7D mov dword ptr [ebp+FFFFF04Ch],0 08 00404B87 mov edx,dword ptr [ebp+FFFFF04Ch] 09 00404B8D mov dword ptr [ebp+FFFFF8D4h],edx |
lea eax, [ebp+FFFFF8F1h] mov dword ptr [ebp+FFFFF8d4h], eax |
01 00404B93 mov eax,dword ptr [ebp+FFFFF8E0h] 02 00404B99 mov edx,dword ptr [eax] 03 00404B9B mov esi,esp 04 00404B9D mov ecx,dword ptr [ebp+FFFFF8E0h] 05 00404BA3 call dword ptr [edx] 06 00404BA5 cmp esi,esp 07 00404BA7 call 0041DDDE 08 00404BAC mov eax,dword ptr [ebp+FFFFF8D4h] 09 00404BB2 mov edx,dword ptr [eax] 10 00404BB4 mov esi,esp 11 00404BB6 mov ecx,dword ptr [ebp+FFFFF8D4h] 12 00404BBC call dword ptr [edx] 13 00404BBE cmp esi,esp 14 00404BC0 call 0041DDDE |
濠电姷顣介埀顒€鍟块埀顒€缍婇幃妯诲緞閹邦剛鐣洪梺闈浥堥弲婊勬叏濠婂牊鍋ㄦい鏍ㄧ〒閹藉啴鏌熼悜鈺傛珚鐎规洘宀稿畷鍫曞煛閸屾粍娈搁梻浣筋嚃閸ㄤ即宕㈤弽顐ュС闁挎稑瀚崰鍡樸亜閵堝懎濮┑鈽嗗亝濠㈡ê螞濡ゅ懏鍋傛繛鍡樻尭鐎氬鏌嶈閸撶喎顕i渚婄矗濞撴埃鍋撻柣娑欐崌閺屾稑鈹戦崨顕呮▊缂備焦顨呴惌鍌炵嵁鎼淬劌鐒垫い鎺戝鐎氬銇勯弽銊ф噥缂佽妫濋弻鐔碱敇瑜嶉悘鑼磼鏉堛劎绠為柡灞芥喘閺佹劙宕熼鐘虫緰闂佽崵濮抽梽宥夊垂閽樺)锝夊礋椤栨稑娈滈梺纭呮硾椤洟鍩€椤掆偓閿曪妇妲愰弮鍫濈闁绘劕寮Δ鍛厸闁割偒鍋勯悘锕傛煕鐎n偆澧紒鍌涘笧閹瑰嫰鎼圭憴鍕靛晥闂備礁鎼€氱兘宕归柆宥呯;鐎广儱顦伴崕宥夋煕閺囥劌澧ù鐘趁湁闁挎繂妫楅埢鏇㈡煃瑜滈崜姘跺蓟閵娧勵偨闁绘劕顕埢鏇㈡倵閿濆倹娅囨い蹇涗憾閺屾洟宕遍鐔奉伓